Retaining style information when copying content

ABSTRACT

An illustrative implementation is described for copying an identified portion of source content along with style information associated with the portion. The implementation allows the identified portion to be pasted into target content. By virtue of the extraction and retention of style information, the identified portion that is pasted into the target content visually resembles the identified portion as it appears in the source content. The implementation can identify relevant style information to be preserved based on a contextual analysis of style information applied to the source content. In one illustrative case, some of the style information may be revealed by parts of the content that are not directly demarcated by the identified portion.

BACKGROUND

An application may allow a user to copy an identified portion of sourcecontent into a clipboard store. The user may then paste the identifiedportion into target content. In many cases, the user may want theidentified portion to look the same in the target content as it does inthe source content. However, this objective is not always attained. Theidentified portion has a prescribed style when it appears in the sourcecontent. The process of copying the identified portion into theclipboard store may not adequately capture the style information appliedto the identified portion in the source content. As a result, theidentified portion may not have the same visual appearance in the targetcontent as it does in the source content.

Consider the illustrative example shown in FIG. 1. In this case, theuser has copied a table 102 into a clipboard store. The table 102appears in source content 104. For example, the table 102 may appear inan encompassing page of content created by a particular application. Theuser pastes the table 102 stored in the clipboard store into targetcontent 106. The table 102 appears in the target content 106 as pastedtable 108.

As shown, the table 102, as it appears in the source content 104,presents information using a prescribed style. For instance, the table102 presents text in various fonts. Further, the table 102 uses adouble-lined border to enclose its text. The act of copying the table102 to the clipboard store may not capture this style information. Assuch, when pasted into the target content 106, the table 102 will notappear the same as it does in the source content 102. In theillustrative case of FIG. 1, the pasted table 108 does not have the samefonts used in the table 102. Further, the pasted table 108 has lost itsdouble-lined border. The user can manually reintroduce the styleinformation to the pasted table 108, but this may be a labor-intensiveand tedious process.

Some content can be expressed using a presentation-related markuplanguage, such as the commonly used HyperText Markup Language (HTML).HTML describes content using presentation-related tags, e.g., by usingtags to identify paragraphs, headers, images, and so forth. HTML canalso work in conjunction with style sheets provided by Cascading StyleSheets (CSS). When copying an identified portion of HTML, it may beparticularly challenging to preserve style information that pertains tothe identified portion.

For at least the above-described illustrative reasons, there is a needfor a more effective way to copy information from source content whileretaining the style information that is applied to the informationwithin the source document.

SUMMARY

An illustrative implementation is described for copying an identifiedportion of source content along with style information associated withthe identified portion. The illustrative implementation allows theidentified portion to be pasted into target content. By virtue of theextraction and retention of style information, the identified portionthat is pasted into the target content visually resembles the identifiedportion as it appears in the source content.

The illustrative implementation can identify relevant style informationto be preserved based on a contextual analysis of style informationapplied to the source content. In one illustrative case, the styleinformation may be indirectly associated with the identified portion.For instance, the style information may pertain to a parent node orancestor node associated with the identified portion, or some other nodethat is not directly demarcated by the identified portion.

Additional illustrative implementations and features are described inthe following.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an example of a copy and paste operation that does notadequately preserve style information applied to an identified portionwithin source content.

FIG. 2 shows one illustrative system for copying and pasting anidentified portion, while retaining style information applied to theidentified portion in source content.

FIG. 3 shows one illustrative editing module and clipboard store for usein the system of FIG. 2.

FIG. 4 shows an example of the application of the editing module of FIG.3, in which an identified portion is copied from source content intotarget content.

FIG. 5 shows illustrative processing functionality that can be used toimplement any aspect of the system of FIG. 2.

FIG. 6 is a flowchart that shows an illustrative procedure forperforming a copy operation.

FIG. 7 is a flowchart that shows an illustrative procedure forperforming a paste operation.

The same numbers are used throughout the disclosure and figures toreference like components and features. Series 100 numbers refer tofeatures originally found in FIG. 1, series 200 numbers refer tofeatures originally found in FIG. 2, series 300 numbers refer tofeatures originally found in FIG. 3, and so on.

DETAILED DESCRIPTION

This disclosure sets forth an illustrative implementation for copying anidentified portion from source content and pasting the identifiedportion into target content. The copying operation preserves styleinformation that is applied to the identified portion in the sourcecontent, thus enabling the identified portion to look the same in thetarget content as it does in the source content. The implementation canbe manifested in various systems, apparatuses, modules, procedures,storage mediums, data structures, and other forms.

This disclosure includes the following sections. Section A describes anillustrative system for copying and pasting content. Section B describesillustrative procedures that explain the operation of the system ofSection A.

A. Illustrative System

As a preliminary note, any of the functions described with reference tothe figures can be implemented using software, firmware, hardware (e.g.,fixed logic circuitry), manual processing, or a combination of theseimplementations. The term “logic, “module,” “component,” “system” or“functionality” as used herein generally represents software, firmware,hardware, or a combination of the elements. For instance, in the case ofa software implementation, the term “logic,” “module,” “component,”“system,” or “functionality” represents program code that performsspecified tasks when executed on a processing device or devices (e.g.,CPU or CPUs). The program code can be stored in one or more computerreadable memory devices.

More generally, the illustrated separation of logic, modules,components, systems, and functionality into distinct units may reflectan actual physical grouping and allocation of software, firmware, and/orhardware, or can correspond to a conceptual allocation of differenttasks performed by a single software program, firmware program, and/orhardware unit. The illustrated logic, modules, components, systems, andfunctionality can be located at a single site (e.g., as implemented by aprocessing device), or can be distributed over plural locations.

The terms “machine-readable media” or the like refers to any kind ofmedium for retaining information in any form, including various kinds ofstorage devices (magnetic, optical, static, etc.). The termmachine-readable media also encompasses transitory forms forrepresenting information, including various hardwired and/or wirelesslinks for transmitting the information from one point to another.

A.1. Overview of System

FIG. 2 shows an overview of an illustrative system 200 that can be usedto copy information from source content into target content, whilepreserving style information that applies to the identified portion inthe source content. As used herein, the term “style information” hasbroad connotation. Style information generally controls the visualappearance and/or behavior of information when it is presented, asopposed to information which generally conveys the structure of theinformation or the semantic nature of the information, and so on.Without limitation, common types of style information convey the fontused to present textual information, the color used to presentinformation, the use of bold, italics, underling, etc. to presentinformation, the use of borders to present information, and so on.

In one non-limiting and illustrative case, the source content maycomprise a document expressed in a presentation-related markup language,such as, without limitation, the HyperText Markup Language (HTML). Thestyle information may be expressed mainly using style sheet information,such as, without limitation, style sheets provided in accordance withthe Cascading Style Sheets (CSS) format. In this example, the styleinformation may correspond in part to the CSS information which isassociated with an identified portion. Such style information may beexpressed inline within the HTML document. In addition, oralternatively, the style information may be provided in one or moreexternal style sheets which are referenced by the HTML document.

In addition, the style information may correspond to certain parts ofthe HTML content itself which contribute to the manner in which anidentified portion is presented. Further, the style information can alsogovern other presentation-related characteristics of the content, suchas the manner in which information is presented to a user in audibleform. Thus, to repeat, the term “style information” is intended to havebroad connotation as used herein.

One objective of the copying operation is extract style information inthe source content that may not be directly demarcated by the identifiedportion selected by the user. For example, consider the case in which auser selects a certain feature on a page of source content, such as aheading within a displayed page of HTML-based content. This feature maycorrespond to (or “demarcate”) a particular part of the HTML documentthat is used to produce the page, such as one or more elements withinthe HTML markup information. However, the style information whichapplies to these elements may ensue from other parts of the HTMLdocument (or elsewhere). In other words, the style information is notnecessarily co-located with the HTML elements to which the identifiedportion most closely pertains.

With the above introduction, the illustrative features of the system 200of FIG. 2 will now be described. In one case, a user operates arepresentative user device 202 to copy an identified portion from sourcecontent and to optionally paste the identified portion into targetcontent. The representative user device 202 can correspond to any kindof electronic processing device, such as a personal computer, a laptopcomputer, a personal digital assistant (PDA), a game console device, aset-top box associated with a television unit, and so forth.

In one illustrative case, the user can use the representative userdevice 202 to copy an identified portion from source content 204 whichis local with respect to the user device 202. In addition oralternatively, the user can use the user device 202 to copy anidentified portion from source content 206 which is remote with respectto the user device 202. This copying operation can cause the identifiedportion to be stored on a local clipboard store 208 and/or a remoteclipboard store (not shown), and/or some other kind of store. Theclipboard store 208 corresponds to any kind of store for retaininginformation that is typically being transferred from any kind of sourcecontent to any kind of target content for any purpose.

In one illustrative case, the user can then use the user device 202 (oranother user device) to paste the identified content stored in theclipboard store 208 into local target content 204. In addition, oralternatively, the user can use the user device 202 to paste theidentified portion into remote content 206.

The user device 202 includes an editing module 210 which performs theabove-described cutting and pasting. The editing module 210 can comprisea standalone application or may be a component within a moreencompassing application. For example, in one illustrative case, theediting module 210 is a component within a web content authoring toolthat is used to produce web pages and the like. As will be describedbelow with reference to FIG. 3, the editing module 210 can include acopying module and a pasting module. In one case, an integral editingmodule 210 provides both the editing and pasting modules. In anothercase, two separate applications implement the respective editing andpasting modules.

A user can interact with the editing module 210 via a user interface 212that is presented by a presentation module 214. In one illustrativecase, the user interface 212 corresponds to a graphical user interface(GUI) presentation that is displayed on a computer monitor or likedevice. Alternatively or in addition, the presentation module 214 canpresent information to a user in audible form.

The source content can correspond to any kind of information expressedin any form that is produced by any application. For example, in oneillustrative case, the source content corresponds topresentation-related markup language content, such as HTML, that ispresented in one or more pages. Such HTML content can originate from thelocal source 204 and/or the remote source 206. A browser module 216 (orother type of application that can interpret HTML content) can be usedto present the HTML content. The HTML content may make reference toexternal sources. For example, the HTML content may make reference toone or more external style sheets. The browser module 216 can obtainsuch style sheets from one or more external sources, generallyrepresented as other network-accessible entities 218 shown in FIG. 2.

The target content can likewise correspond to any kind of informationexpressed in any form that is produced by any application. For example,in one illustrative case, the target content also corresponds topresentation-related markup language content, such as HTML, that ispresented in one or more pages. In this illustrative scenario, the goalmay be to copy a portion of one HTML page into another HTML page using aweb page authoring tool. In another illustrative case, the targetcontent may correspond to other types of documents produced by any otherapplication (generally represented in FIG. 2 as client applications 220,although the applications can also be network-accessible applications,such as shared Terminal Services applications implemented on a remoteserver). For example, in one illustrative case, the user may copy aportion of an HTML page into the clipboard store 208 and then paste thisidentified portion into a document produced by a word processingapplication, a document produced by a spreadsheet program, a documentproduced by a drawing program, and so forth. Each of these types ofapplications uses prescribed rules to present information in thedocuments that it produces. Thus, each of these applications may applyunique rules in determining how to merge an identified portion into thedocuments that it produces.

In yet another illustrative case, the target document may correspond tothe same document as the source content. For instance, the user may copyan identified portion of a page and then copy the portion onto adifferent part of the page, and/or duplicate the copied portion withinthe page.

In one illustrative implementation, the system 200 also includes anetwork 222 (which may represent one or more component networks). Thenetwork 222 can be used to couple any local aspect of the system 200with a network-accessible aspect of the system 200. The network 222 canrepresent a local area network (LAN), a wide area network (WAN) (e.g.,the Internet), or some combination of LAN(s) and WAN(s). The network 222can be implemented by any combination of wireless links, hardwiredlinks, routers, gateways, name servers, and so forth, and can begoverned by any protocol or combination of protocols.

A.2. Illustrative Editing Module

FIG. 3 is a more detailed depiction of the editing module 210 and theclipboard store 208, which were introduced in FIG. 2. In oneillustrative implementation, the editing module 210 includes a copyingmodule 302 for copying an identified portion into the clipboard store208, while retaining style information that applies to the identifiedportion in the source content. The editing module 210 also includes apasting module 304 for pasting the identified portion into targetcontent. As explained above, to facilitate explanation, the editingmodule 210 corresponds to an integrated module that includes both thecopying module 302 and the pasting module 304. However, in otherimplementations, different editing applications can separately implementthe copying module 302 and the pasting module 304, respectively.

Addressing the copying module 302 first, this module 302 includes aportion selection module 306. The purpose of the portion selectionmodule 306 is to select a part of the source content, which is referredto herein as the “identified portion.” The portion selection module 306can use different techniques to select the identified portion. Accordingto one illustrative technique, the user uses a graphical positioningdevice (such as a mouse device) and/or other kind of input device toselect a part of the source content that is presented on the userinterface 212 of the presentation module 214. For example, assume thatthe source content presents a page of content that is based onunderlying HTML information. The user can use the portion selectionmodule 306 to select any part of the page (e.g., a paragraph, etc.). Theuser can perform this operation using a mouse device, such as bypositioning a cursor on an identified portion of the content and makinga click selection, and/or clicking and dragging on the source content todefine a portion of selectable content, and so on. In anotherillustrative case, the user can directly display the underlying HTMLcontent and/or associated style information of the document. In thiscase, the user can use a mouse device and/or other type of input deviceto directly select a part of the HTML content, rather than the documentthat can be rendered based on the HTML content. Still other techniquescan be used to select an identified portion.

In one illustrative implementation, the copying module 302 also includesan information extraction module 308. The purpose of the informationextraction module 308 is to extract relevant information associated withthe identified portion. The relevant information includes anyinformation that is directly demarcated by the user's selection. Forexample, in the case in which the user clicks on a paragraph of adocument, the extracted portion corresponds to the element(s) of theunderlying HTML document which directly correlate with the selectedparagraph. The element that is directly demarcated by the user'sselection can also include (or can reference) style information that canbe extracted by the information extraction module 308. Morespecifically, in some cases, the information extraction module 308 canextract style information which is present in the HTML document itself,such as inline style information which appears within the HTML document.In other cases, the information extraction module 308 can retrieve andextract style information which is referenced by the HTML document; suchstyle information may originate from an external source, such as one ormore external network-accessible sources that apply one or more CSSstyle sheets.

The information extraction module 308 also extracts relevant informationthat may not be directly demarcated by the user's selection of theidentified portion. According to one approach to extracting thisinformation, the identified portion may correspond to an element in anHTML document (or multiple elements). The selected element, in turn, mayappear within a hierarchy of elements in the HTML document. Theinformation extraction module 308 explores the hierarchical structure todiscover any nodes in the document that may have a bearing on the waythat the identified portion is presented in the source content. Suchnodes may correspond to parent nodes or ancestor nodes with respect tothe identified portion. For example, a parent node may provideinformation that indicates that a table (corresponding to the identifiedportion) includes a certain type of border. The information extractionmodule 308 can extract relevant information gleaned by examining thehierarchy in this manner.

In other illustrative cases, the information extraction module 308 maydiscover that other types of nodes (e.g., other than parent or ancestornodes) have a bearing on how the identified portion should be presented.For example, the information extraction module 308 may determine thatsibling nodes (with respect to the identified portion) have a bearingregarding how the identified portion is presented in the target content.

The information extraction module 308 can determine whether styleinformation is relevant to an identified portion using differentapproaches. In one illustrative implementation, a relevant style sheetmay include a collection of selectors. The selectors identify featuresthat may be present in an HTML document. The style sheet includes acollection of rules that identify what style operations should beapplied to the features. Thus, for example, a style sheet may include aselector which identifies a certain type of header that may appear in adocument. The style sheet may identify what style operations should beapplied to the header. By leveraging this aspect of style sheets, theinformation extraction module 308 can extract relevant style informationby identifying what type of elements are associated with the identifiedportion, and then determining whether there are any style rulescontained in or referenced by the source content that apply to theidentified elements.

In certain illustrative cases, a style rule may apply to the identifiedcontent within the source content by virtue of relatively complexmatching considerations. These matching considerations may depend on thecontext in which the identified portion appears within the sourcecontent, e.g., taking into consideration sibling nodes with respect tothe identified portion and/or other types of neighboring nodes withinthe source content. For this type of rule, there arises the challengethat it becomes difficult to extract the relevant style informationwithout retaining a large part of the source content (and perhaps all ofit), as this large part provides the context which triggers theapplication of the rule.

To address this situation, in one illustrative implementation, theinformation extraction module 308 can rewrite the rule so that itapplies to the identified portion without having to preserve a largepart of the source content. Alternatively, or in addition, theinformation extraction module 308 can interject enough node structureinto the clipboard store 208 such that a style rule continues to applyto the identified portion. For example, in the case in which theapplicability of a rule depends on the presence of certain neighboringnodes that are not per se demarcated by the identified portion, theinformation extraction module 308 can introduce placeholder “empty”neighboring nodes into the information that it stores onto the clipboardstore 208. These placeholder nodes trigger the application of a relevantstyle rule.

In another illustrative technique, a developer tool can be used whichdisplays both a rendered page of content and the underlying HTML contentand/or style information used to produce the rendered page. In oneillustrative technique, the developer tool can allow a user to selectany feature in the rendered page (such as a header feature in a renderedpage), whereupon the tool will display the HTML and/or sourceinformation corresponding to the part (such as the corresponding headerHTML element and the style information used to format this headerfeature). The user can also select HTML content, which causes thecorresponded part of the rendered page to be highlighted. In thistechnique, the user can use manual or semi-automated techniques toselect relevant style rules which the tool reveals as being related toan identified portion of source content.

Still other illustrative techniques can be used to identify and extractrelevant information from source content. As a final note, theinformation extraction module 308 can omit certain parts of the selectedHTML and style information, even if such information is directlydemarcated by the identified portion. This is because the informationextraction module 208 may determine that this information is extraneous,meaning that it does not control the presentation of any aspect of theidentified portion selected by the user. Omitting extraneous content isadvantageous because it reduces the amount of information that needs tobe stored in the clipboard module 208.

The copying module 302 can store the extracted information in theclipboard store 208 using various formats. In one illustrativeimplementation, according to one format, the copying module 302 storesbase HTML content in a first store 310. The base HTML contentcorresponds mainly to structural parts of the markup content, ratherthan style information, although parts of the base HTML content can alsocorrespond to style information. The copying module 302 can storeinformation that is predominately style-related in nature in a styleinformation store 312. Together, the stores 310 and 312 comprise acollection of information 314 that is sufficient to reconstruct theidentified portion when it is pasted within target content.

The copying module 302 can also optionally store the identified portionin another store 316 (or stores) using another format. For example, thecopying module 302 can extract larger parts of the source content andstore such parts in the optional store 316. For instance, the copyingmodule 302 can store the complete source content in the store 316 whenthe user selects an identified portion within the source content. Thecopying module 302 can include markers to demarcate an identifiedportion within the content stored in the store 316. The user canreconstruct the identified portion using the information stored in thecollection of stores 314 and/or the information stored in the optionalalternative store 316 (or some other store, not shown).

Now turning to the pasting module 304, according to one illustrativeimplementation, this module 304 includes a paste selection module 318.The purpose of the paste selection module 318 is to paste an identifiedportion stored in the clipboard store 208 onto target content. The pasteselection module 318 can perform this task by pointing to a particularpart of the target content using a mouse device and/or some other typeof input device and then entering an instruction to paste the clipboardcontents at the identified location in the target content.

The pasting module 304 can also include a content merging module 320.The purpose of the content merging module 320 is to merge the identifiedportion stored in the clipboard store 208 into the target content.Recall that the target content may be expressed in a format that differsfrom the format of the source content. The content merging module 320can perform the merging by separately merging the HTML information inthe clipboard's first store 310 with HTML information used by the targetcontent, and then merging style information (e.g., CSS information) inthe clipboard's second store 312 with style information used by thetarget content. The content merging operation 320 can then combinetogether the merged HTML information and CSS information to render thefinal result. Each unique application can adopt application-specificrules to perform the above-described merging operations.

A.3. Example of the Operation of the Editing Module

FIG. 4 shows an example of the operation of the editing module 210 ofFIG. 2. In this example, the top half of the figure shows source content402 and corresponding markup language content 404 that is used to renderthe source content 402. The user has selected an identified portion 406of the source content 402 to be stored in the clipboard store 208. Theuser can perform this selection operation by selecting a part of thesource content 402 based on a graphical presentation of the content 402.Alternatively, or in addition, the user can select the identifiedportion by selecting a corresponding part of the content 402 in itsunderlying HTML form 404.

In another illustrative technique, a user interface presentation caninclude a first portion which presents the rendered source content 402and a developer toolbar part 408 which displays the corresponding markuplanguage content 404 and/or style information. The developer toolbarpart 408 can allow a user to select a part of the rendered content,which causes the developer toolbar to display the corresponding markupcontent and/or style rules (e.g., in response to activating a “viewsource” command). The same is true in reverse; the user can select partsof markup content to cause corresponding parts of the rendered page tobe highlighted. The user can select an identified portion by activatingthe developer toolbar 408 and then picking out the relevant HTML and/orstyle information which is of interest.

As shown on the bottom half of FIG. 4, the user can then paste thecopied identified portion from the clipboard store 208 into targetcontent 410. The user can perform this task by selecting a part of thetarget content 410 and then entering an instruction to paste theclipboard contents into the target content 410 at the identifiedlocation. The identified portion takes the form of pasted content 412when it is pasted into the target content 410. The pasted content 412should preferably have the same visual appearance as the identifiedportion 406 in the source content 402.

The pasting operation also has the effect of inserting the identifiedportion into the underlying structure of the target document. Forinstance, in the illustrative case in which the target content 410 isbased on an HTML document, the target HTML content is modified toincorporate the identified portion 412.

Returning to the discussion of the copying operation, FIG. 4 illustratesthat a part 416 of the HTML content 404 is directly demarcated by theidentified portion 406 in the displayed source content 402. For example,when the identified portion 406 corresponds to a paragraph, the part 416of the HTML content 404 may correspond to an element or elements whichdirectly describe the paragraph. The copying module 302 can extract somestyle information from this part 416 of the HTML content 404. Inaddition, the copying module 302 investigates other nodes in the HTMLcontent 404, such as parent nodes or ancestors nodes 418 and/or othernodes 420 which may have a bearing on style information that governs theappearance of the identified portion 406. The copying module 302 thenextracts this information for storage in the clipboard store 208. Thepasting module 304 pastes the identified portion 406 into the targetdocument 410, which may have the effect of inserting various elements422 into the target markup content 414, as well as modifying the styleinformation that applies to the target markup content 414.

A.4. Illustrative Processing Functionality

FIG. 5 sets forth illustrative processing functionality 502 that can beused to implement any aspect of system 200 shown in FIG. 2. In onenon-limiting case, for instance, the processing functionality 502 mayrepresent any computer machine used by the system 200, e.g., toimplement any aspect of the representative user device 202, any aspectof any sever-side entity, and so on.

The processing functionality 502 can include various volatile andnon-volatile memory, such as RAM 504 and ROM 506, as well as one or morecentral processing units (CPUs) 508. The processing functionality 502can perform various operations identified above when the CPU 508executes instructions that are maintained by memory (e.g., 504, 506, orelsewhere). The processing functionality 502 also optionally includesvarious media devices 510, such as a hard disk module, an optical diskmodule, and so forth.

The processing functionality 502 also includes an input/output module512 for receiving various inputs from the user (via input devices 514),and for providing various outputs to the user (via output devices 516).One particular output device may include the presentation module 214 andan associated graphical user interface (GUI) 212 introduced in thecontext of FIG. 2. The processing functionality 502 can also include oneor more network interfaces 518 for exchanging data with other devicesvia one or more communication conduits 520, such as the network 222introduced in the context of FIG. 2. One or more communication buses 522communicatively couple the above-described components together.

B. Illustrative Procedures

FIGS. 6 and 7 show illustrative procedures which explain the operationof the system 200 in flow chart form. To facilitate discussion, certainoperations are described as constituting distinct blocks performed in acertain order. Such implementations are illustrative and non-limiting.Certain blocks described herein can be grouped together and performed ina single operation, and certain blocks can be performed in an order thatdiffers from the order employed in the examples set forth in thisdisclosure. The blocks shown in the flowcharts can be implemented bysoftware, firmware, hardware, manual processing, any combination ofthese implementations, and so on.

As the functions described in the flowcharts have already been set forthin Section A, Section B serves principally as a review of thosefunctions.

B.1. Copying Operation

FIG. 6 is a flowchart that shows one illustrative procedure 600 forcopying an identified portion from source content into a clipboard store208 (or some other kind of store), while preserving style informationthat applies to the identified portion in the source content.

In block 602, the copying module 302 receives a selection of anidentified portion of source content in the manner described above.

In block 604, the copying module 302 identifies and stores relevant HTMLinformation associated with the user's selection of the identifiedportion.

In block 606, the copying module 302 identifies and stores relevantstyle information associated with the user's selection of the identifiedportion. The style information may directly emanate from the identifiedportion, but part of the style information may have a more complex andindirect relation to the identified portion in the manner describedabove.

B.2. Pasting Operation

FIG. 7 is a flowchart that shows one illustrative procedure 700 forpasting an identified portion stored in the clipboard store 208 (or someother kind of store) into target content.

In block 702, the pasting module 304 retrieves base HTML informationfrom the clipboard store 208 associated with the identified portionselected by the user.

In block 704, the pasting module 304 merges the extracted HTMLinformation with the HTML information (or other kind of information)used by the target content.

In block 706, the pasting module 304 retrieves style information fromthe clipboard store 208 associated with the identified portion.

In block 708, the pasting module 304 merges the extracted styleinformation with the style information used by the target content.

In block 710, the pasting module 304 renders the target contentincluding the identified portion based on the merged HTML contentprovided in block 704 and the merged style information generated inblock 708. The identified portion should preferably have the same orsimilar visual appearance in the target content as it does in the sourcecontent.

The procedure 700 can optionally include block 712, which allows theuser to perform a pasting operation based on alternative informationstored in the clipboard store 208, such as the information provided inthe store 316 of the clipboard store 208. The information stored in thestore 316 may not separately itemize HTML information and styleinformation in the manner described above.

In closing, a number of features were described herein by firstidentifying illustrative problems that these features can address. Thismanner of explication does not constitute an admission that others haveappreciated and/or articulated the problems in the manner specifiedherein. Appreciation and articulation of the problems present in therelevant art(s) is to be understood as part of the implementationsdescribed herein.

More generally, although the implementations have been described inlanguage specific to structural features and/or methodological acts, itis to be understood that the implementations are not necessarily limitedto the specific features or acts described. Rather, the specificfeatures and acts are disclosed as illustrative.

1. A method for copying a portion of source content, comprising:receiving a selection that identifies a portion of source content to becopied, to provide an identified portion, wherein the source content isexpressed by corresponding markup information; identifying markupinformation associated with the identified portion, to provideidentified markup information; identifying style information associatedwith the identified portion, to provide identified style information, atleast part of the identified style information not being directlydemarcated by the identified portion; extracting the identified styleinformation to retain the identified style information with the portionof source content to be copied; and storing the identified markupinformation and the identified style information in a store to enablereproduction of style characteristics defined by the identified styleinformation when the portion of source content is pasted into a targetcontent.
 2. The method of claim 1, wherein the receiving of theselection comprises receiving a user's selection of the identifiedportion within a graphical presentation of the source content.
 3. Themethod of claim 1, wherein the receiving of the selection comprisesreceiving a user's selection of the identified portion within apresentation of markup information associated with the source content.4. The method of claim 1, wherein the identifying of style informationcomprises identifying at least one node associated with the sourcecontent that is not directly demarcated by the identified portion, andextracting style information associated with said at least one node. 5.The method of claim 4, wherein said at least one node corresponds to anode that has a parent-type or ancestor-type relationship with respectto the identified portion.
 6. The method of claim 4, wherein said atleast one node corresponds to a node that does not have a parent-type orancestor-type relationship with respect to the identified portion. 7.The method of claim 1, wherein the extracting of style informationcomprises extracting style information that is inline with respect tothe corresponding markup information associated with the source content.8. The method of claim 1, wherein the extracting of style informationcomprises extracting style information from an external source withrespect to the corresponding markup information associated with thesource content.
 9. The method of claim 1, wherein the identifying ofstyle information comprises determining one or more style rulesassociated with the source content that apply to the identified portion.10. The method of claim 9, wherein the identifying of style informationcomprises restructuring markup information corresponding to the sourcecontent so that at least one of said style rules continues to apply tothe identified portion.
 11. The method of claim 9, wherein theidentifying of style information comprises restructuring at least one ofsaid style rules to provide a restructured style rule, so that therestructured style rule applies to the identified portion.
 12. Themethod of claim 1, wherein the corresponding markup information isHyperText Markup Language (HTML) information.
 13. The method of claim 1,wherein the identified style information is Cascading Style Sheets (CSS)information.
 14. The method of claim 1, wherein the store is a clipboardstore.
 15. The method of claim 1, further comprising pasting theidentified portion into target content such that style characteristicsdefined by the identified style information are retained.
 16. The methodof claim 15, wherein the pasting comprises: merging the identifiedmarkup information with markup information associated with the targetcontent, to provided merged markup information; merging the identifiedstyle information with style information associated with the targetcontent, to provide merged style information; and rendering the targetcontent including the identified portion based on the merged markupinformation and the merged style information.
 17. One or moremachine-readable storage device containing machine-readable instructionsfor implementing the method of claim
 16. 18. One or more computingdevices, comprising: one or more processors; and memory to storecomputer-executable instructions that, when executed by the one or moreprocessors, perform the method of claim
 16. 19. A method for pasting anidentified portion into target content, comprising: retrievingidentified markup information from a store, the identified markupinformation being extracted from source content and being associatedwith the identified portion; retrieving identified style informationfrom the store, the identified style information being extracted fromthe source content and being associated with the identified portion toretain the identified style information with the identified portion ofwhen the identified portion is copied from source content; merging theidentified markup information with markup information associated withthe target content, to provided merged markup information; merging theidentified style information with style information associated with thetarget content, to provide merged style information; and rendering thetarget content including the identified portion based on the mergedmarkup information and the merged style information such that stylecharacteristics defined by the identified style information areretained.
 20. A system comprising: a processor coupled to memory; a copymodule stored in the memory and executable via the processor to copy aportion of source content such that style characteristics of the portionare retained, the copy module including: a portion selection module forreceiving a selection that identifies the portion of source content tobe copied, to provide an identified portion, wherein the source contentis expressed by corresponding markup information; and an informationextraction module for: identifying style information associated with theidentified portion, to provide identified style information, at leastpart of the identified style information not being directly demarcatedby the identified portion; and storing the identified markup informationand the identified style information in a store to enable reproductionof style characteristics defined by the identified style informationwhen the portion of source content is pasted into target content.